import request from '@/utils/request'

// 角色信息
export interface Role {
  id: number
  name: string
  code: string
  sort: number
  status: number
  remark: string
  createdAt: string
  updatedAt: string
}

// 角色列表查询参数
export interface RoleQueryParams {
  page?: number
  pageSize?: number
  name?: string
  code?: string
  status?: number
}

// 分页结果
export interface PageResult<T> {
  list: T[]
  total: number
  page: number
  pageSize: number
}

// 角色资源请求
export interface RoleResourceRequest {
  resourceIds: number[]
}

// 获取角色列表
export function getRoleList(params: RoleQueryParams) {
  return request.get<PageResult<Role>>('/api/v1/roles', params)
}

// 获取所有角色（不分页）
export function getAllRoles() {
  return request.get<Role[]>('/api/v1/roles/all')
}

// 获取角色详情
export function getRoleById(id: number) {
  return request.get<Role>(`/api/v1/roles/${id}`)
}

// 获取角色已分配的资源ID列表
export function getRoleResources(roleId: number) {
  return request.get<number[]>(`/api/v1/roles/${roleId}/resources`)
}

// 更新角色资源分配
export function assignRoleResources(roleId: number, data: RoleResourceRequest) {
  return request.post(`/api/v1/roles/${roleId}/resources`, data)
}
